//package com.example.system_development.filter;
//
//import com.alibaba.fastjson.JSON;
//import com.example.system_development.common.R;
//
//import javax.servlet.*;
//import javax.servlet.annotation.WebFilter;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//
///**
// * 检查用户是否已经完成登录
// * 实现步骤：
// * 1、创建自定义过滤器LoginCheckFilter
// * 2、在启动类上加入注解@ServletComponentScan
// * 3、完善过滤器的处理逻辑
// *      - 1、获取本次请求的URI
// *      - 2、判断本次请求是否需要处理
// *      - 3、如果不需要处理，则直接放行
// *      - 4、判断登录状态，如果已登录，则直接放行
// *      - 5、如果未登录则返回未登录状态
// */
//@WebFilter(filterName = "LoginCheckFilter", urlPatterns = "/*")
//public class LoginCheckFilter implements Filter {
//    @Override
//    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//        HttpServletRequest request = (HttpServletRequest) servletRequest;
//        HttpServletResponse response = (HttpServletResponse) servletResponse;
//
//        //1、获取请求路径
//        String url = request.getRequestURL().toString();
//        //2、判断请求的资源路径
//        if (url.contains("login")) {
//            //登录功能，放行
//            filterChain.doFilter(request, response);
//            return;
//        }
//
//        //3、从session中获取用户信息，判断用户是否登录
//        Object user = request.getSession().getAttribute("user");
//        if (user != null) {
//            //用户已登录，允许访问
//            filterChain.doFilter(request, response);
//            return;
//        }
//        /**
//         * 4、如果未登录则返回未登录状态
//         * - 需要给前端返回约定好的数据：{"code":0,   "msg":"NOT_LOGIN",  "data":null}
//         * - 把该对象转换为json格式
//         */
//        response.getWriter().write(JSON.toJSONString(R.error("NOT_LOGIN")));
//    }
//}
